import java.io.*;
import java.util.ArrayList;
import java.util.Hashtable;
import java.util.Date;
import java.text.ParseException;
import java.text.SimpleDateFormat;

public class Txt {

	private File f;
	private SimpleDateFormat formatoFecha = new SimpleDateFormat("dd/MM/yyyy");
	

	public ArrayList<Plan> leerPlanes() throws IOException{
		f = new File("datos/Planes");
		if(f.exists()){
			Plan p = new Plan();
			ArrayList<Plan> planes = new ArrayList<Plan>();
			BufferedReader in = new BufferedReader(new FileReader(f));
			int i = 1;
			while(in.ready()){
				switch(i){
				case 1:
					p.setNombre(in.readLine());
				case 2:
					p.setInternet(Integer.parseInt(in.readLine()));
				case 3:
					p.setMensajes(Integer.parseInt(in.readLine()));
				case 4:
					p.setMinutos(Integer.parseInt(in.readLine()));
				case 5:
					p.setValor(Double.parseDouble(in.readLine()));
				case 6:
					p.setDsctoEquipo(Float.parseFloat(in.readLine()));
				case 7:
					p.setVisible(Boolean.parseBoolean(in.readLine()));
				case 8:
				{
					in.readLine();
					planes.add(p);
					p = new Plan();
					i=0;
				}
				}
				i++;
			}
			in.close();
			return planes;
		}
		else{
			System.out.println("El archivo \"Planes\" no existe.");
			return null;
		}
	}
	
	public void escribirPlanes(){
		
	}
	
	public ArrayList<Cliente> leerClientes()throws IOException, ParseException{
		f = new File("datos/Clientes");
		if(f.exists()){
			Cliente nuevoCliente = new Cliente();
			ArrayList<Cliente> clientes = new ArrayList<Cliente>();
			BufferedReader in = new BufferedReader(new FileReader(f));
			int i = 1;
			while(in.ready() ){
				switch(i){
				case 1:
					nuevoCliente.setRut(in.readLine());
				case 2:
					nuevoCliente.setNombre(in.readLine());
				case 3:
					nuevoCliente.setGenero(in.readLine());
				case 4:
					String strFecha = in.readLine();
					Date fe= formatoFecha.parse(strFecha);
					nuevoCliente.setFechaNacimiento(fe);
					
				case 5:
					nuevoCliente.setDireccion(in.readLine());
				case 6:
					nuevoCliente.setFonoDeContacto(in.readLine());
				case 7:
					in.readLine();
					clientes.add(nuevoCliente);
					nuevoCliente = new Cliente();
					i=0;
				}
				i++;
			}
			in.close();
			return clientes;
		}
		else{
			System.out.println("El archivo \"Clientes\" no existe.");
			return null;
		}
	}
	
	public void escribirClientes(ArrayList<Cliente> clientes){
		f = new File("datos/Clientes");
		try{
			FileWriter w = new FileWriter(f);
			BufferedWriter bw = new BufferedWriter(w);
			PrintWriter wr = new PrintWriter(bw);
			String strFecha;
			for(int i=0; i<clientes.size(); i++){
				wr.append(clientes.get(i).getRut()+"\n");
				wr.append(clientes.get(i).getNombre()+"\n");
				wr.append(clientes.get(i).getGenero()+"\n");
				strFecha = formatoFecha.format(clientes.get(i).getFechaNacimiento());
				wr.append(strFecha+"\n");
				wr.append(clientes.get(i).getDireccion()+"\n");
				wr.append(clientes.get(i).getFonoDeContacto()+"\n");
				wr.append("\n");
			}
			wr.close();
			bw.close();
		}catch(IOException e){};
	}
	
	public ArrayList<Equipo> leerEquipos()throws IOException{
		f = new File("datos/Equipos");
		if(f.exists()){
			Equipo nuevoEquipo = new Equipo();
			ArrayList<Equipo> equipos = new ArrayList<Equipo>();
			BufferedReader in = new BufferedReader(new FileReader(f));
			int i = 1;
			while(in.ready() ){
				switch(i){
				case 1:
					nuevoEquipo.setMarca(in.readLine());
				case 2:
					nuevoEquipo.setModelo(in.readLine());
				case 3:
					nuevoEquipo.setCamara(Float.parseFloat(in.readLine()));
				case 4:
					nuevoEquipo.setTeclado(in.readLine());
				case 5:
					nuevoEquipo.setGps(Boolean.parseBoolean(in.readLine()));
				case 6:
					nuevoEquipo.setSO(in.readLine());
				case 7:
					nuevoEquipo.setWifi(Boolean.parseBoolean(in.readLine()));
				case 8:
					nuevoEquipo.setPrecio(Double.parseDouble(in.readLine()));
				case 9:
					in.readLine();
					nuevoEquipo.setStock(15);
					equipos.add(nuevoEquipo);
					nuevoEquipo = new Equipo();
					i=0;
				}
				i++;
			}
			in.close();
			return equipos;
		}
		else{
			System.out.println("El archivo \"Equipos\" no existe.");
			return null;
		}
	}
	
	public void escribirEquipos(){
		
	}
	
	public void tabula(String str, int largo){
		System.out.print(str);
		for(int i=0; i<(largo-str.length()); i++) System.out.print(" ");
	}
	public void tabula(String str, int largo,String align){
		for(int i=0; i<(int)((largo-str.length())/2); i++) System.out.print(" ");
		System.out.print(str);
		for(int i=0; i<(int)(str.length()/2); i++) System.out.print(" ");
	}
	
}
